Modern storage arrays provide quality of service (QoS) mechanisms that allow users to define Service Level Objective (SLO) targets for particular applications or workloads. These SLO definitions typically take into account the available performance in every storage tier within the system in terms of IOPS density (IOPS/GB) of each tier. The addition of deduplication capabilities to a primary storage array, introduces a new dimension that must be considered as colder data migrates from non-deduplicated storage tiers into deduplicated storage tiers. Heat (e.g., access activity) statistics are kept per extent. An extent is a contiguous area of storage reserved for a file in a file system.
When extents are deduplicated into deduplicated storage tiers, the reduction of data copies for that extent can cause a short term increase in access frequency activity for that data causing the tier to promoted from the deduplicated storage tier shortly after the extent has been retired from a performance tier, causing thrashing between deduplicated and non-deduplicated tiers. Thrashing can be particularly problematic for deduplicated data because the rehydration process for deduplicated data is potentially computationally intensive and has negative downstream repercussions for deduplication tier maintenance, such as a need to perform garbage collection activities. Additionally, in a primary storage system having virtualized data protection, the optimal allocation between CPU and I/O resource can differ based on whether a large amount of deduplication operations are necessary for backup operations for the data.
Thus, it would be beneficial if additional maintenance logic were available for the management of data migration and backup operations for a primary storage device having deduplicated and non-deduplicated storage tiers.